/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controlador;

import Modelo.Entidades.AlumnoImpl;
import Modelo.Entidades.ProfesorImpl;
import Modelo.Entidades.Usuario;
import Modelo.Entidades.UsuarioImpl;
import Modelo.UsuarioModel;
import Vista.Usuario.UsuarioView;
import java.util.List;

/*
 *  Proyecto eJAM [G12]
 *  Miembros:
 *      - Javier Ruiz Hidalgo
 *      - Adrian Ramos Cápitas
 *      - Miguel Alejandro Esteban Ordóñez
 */

public class UsuarioControllerImpl extends AbstractControllerImpl<UsuarioModel, UsuarioView, String> implements UsuarioController {

    protected Usuario generaEntidad(List<String> datos) {
        Usuario usuario = null;

        String nombre = datos.get(0);
        String ap1 = datos.get(1);
        String ap2 = datos.get(2);
        String dni = datos.get(3);
        String telefono = datos.get(4);
        String correo = datos.get(5);
        String privilegio = datos.get(6);

        if (privilegio.equals("Profesor")) {
            usuario = new ProfesorImpl(nombre, ap1, ap2, dni, telefono, correo);
        } else {
            usuario = new AlumnoImpl(nombre, ap1, ap2, dni, telefono, correo);
        }

        return usuario;
    }

    protected Usuario generaEntidad(String pk) {
        Usuario usuario = null;

        usuario = new UsuarioImpl(pk);

        return usuario;
    }

    private void comunicaContraseña(String pass) {
        List<UsuarioView> vistas = super.getViews();

        for(UsuarioView uv: vistas){
            uv.comunicaContraseña(pass);
        }
    }

    public void nuevoUsuarioGesture(List<String> datos) {
        Usuario usuario = generaEntidad(datos);
        usuario.generaContraseña();
        getModel().nuevaEntidad(usuario);
        this.comunicaContraseña(usuario.getPass());
    }

}
